/*
* TFViewInterface.h
*
* This interface is responsible for hiding the view implementation.
* 
* Author: Rapid Dojo
* Date: Oct 19, 2007
*/

#ifndef TFViewInterface_H
#define TFViewInterface_H

#include "TFConstants.h"
#include "TFModelInterface.h"

class TFViewInterface
{
public:
    
    virtual HRESULT BoardClicked(int stylusX, int stylusY, int *row, int *col) {return E_FAIL;}
    
    virtual HRESULT ButtonClicked(int stylusX, int stylusY, int *index) {return E_FAIL;}

	virtual HRESULT Redraw(){return E_FAIL;}

	virtual HRESULT DrawPieceLocation(int col, int row, bool isSelected){return E_FAIL;}

	virtual void UpdateActionPoints(int points) {;}

	virtual void HideAllSprites() {;}
	virtual void UndoHideSprites() {;}
	virtual void DeselectButton() {;}
	virtual void ShowPlacePieces() {;}
	virtual void HidePlacePieces() {;}
	virtual void SetButtonActive(int index, bool active) {;}
	virtual void HideButton(int index) {;}

	virtual void DeInitGame(){;}
	//only call once
	virtual void InitSpriteList(){};

	virtual void DrawRulesScreen() {;}

	virtual bool GetConfirmQuit() { return true; }

	virtual void DisplayWinScreen(int player) {;}

	virtual void SetModel(TFModelInterface * iTFModel){_model = iTFModel;}
    
    virtual void SetRuleChecker(TFRuleCheckerInterface * iTFRuleChecker){_ruleChecker = iTFRuleChecker;}
    
	virtual ~TFViewInterface(){}

	/*
	virtual HRESULT DrawCurrentSplash(){return E_FAIL;}

	virtual HRESULT DisplayMenu() {return E_FAIL;}

    virtual HRESULT DisplayOptionsMenu() {return E_FAIL;}
    
	virtual HRESULT DisplayHelpMenu() {return E_FAIL;}

	virtual HRESULT DisplayCredits() {return E_FAIL;}
    
	virtual HRESULT FadeBgIn(s8 screen) {return E_FAIL;}

	virtual HRESULT FadeBgOut(s8 screen) {return E_FAIL;}

	*/

protected:
	TFModelInterface *_model;
    TFRuleCheckerInterface *_ruleChecker;
};

#endif
